define( ['jquery','ztree'], function($,Ztree) {

    // var treeModule = {
    //     defaults: {
    //         treeObj: null,
    //         treeId: "#tree",
    //         url: "",
    //         data: {},
    //         selectedMulti: false,
    //         beforeClick: null,
    //         beforeAsync: null,
    //         onAsyncError: null,
    //         onAsyncSuccess: null,
    //         onClick: null,
    //         autoParam: ["id", "name=n", "level=lv"],
    //         otherParam: null,
    //         check: false,
    //         zNodes: null,
    //         addDiyDom: null,
    //         addHoverDom: null,
    //         removeHoverDom: null,
    //         nameLength: 20
    //     },
    //     opts: {},
    //     init: function(options) {
    //         var opts = $.extend({}, treeModule.defaults, options);

    //         treeModule.opts = opts;
    //         var setting = {
    //             nameLength: opts.nameLength,
    //             view: {
    //                 selectedMulti: opts.selectedMulti,
    //                 addDiyDom: opts.addDiyDom,
    //                 addHoverDom: opts.addHoverDom,
    //                 removeHoverDom: opts.removeHoverDom
    //             },
    //             data: opts.data,
    //             check: {
    //                 enable: opts.check
    //             },
    //             async: {
    //                 enable: opts.zNodes == null,
    //                 url: opts.url,
    //                 autoParam: opts.autoParam,
    //                 otherParam: opts.otherParam,
    //                 dataFilter: filter
    //             },
    //             callback: {
    //                 beforeClick: treeModule.beforeClick,
    //                 beforeAsync: treeModule.beforeAsync,
    //                 onAsyncError: treeModule.onAsyncError,
    //                 onAsyncSuccess: treeModule.onAsyncSuccess,
    //                 onClick: treeModule.zTreeOnClick
    //             }
    //         };
    //         //$.getJSON(opts.url, function (json) {
    //         //    $.fn.zTree.init($(opts.treeId), setting, json).expandAll(true);
    //         //});


    //         $.fn.zTree.init($(opts.treeId), setting, opts.zNodes);

    //         treeModule.treeObj = $.fn.zTree.getZTreeObj(opts.treeId.replace("#", ""));

    //         function filter(treeId, parentNode, childNodes) {
    //             if (!childNodes) return null;
    //             for (var i = 0, l = childNodes.length; i < l; i++) {
    //                 childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
    //             }
    //             return childNodes;
    //         }


    //     },
    //     zTreeOnClick: function(event, treeId, treeNode) {
    //         if (treeModule.opts.zTreeOnClick == null)
    //             return;

    //         treeModule.opts.zTreeOnClick(event, treeId, treeNode);
    //     },
    //     beforeClick: function(treeId, treeNode) {
    //         if (treeModule.opts.beforeClick == null)
    //             return;

    //         treeModule.opts.beforeClick(treeId, treeNode);

    //     },
    //     beforeAsync: function(treeId, treeNode) {

    //         if (treeModule.opts.beforeAsync == null)
    //             return;

    //         treeModule.opts.beforeAsync(treeId, treeNode);

    //     },
    //     onAsyncError: function(event, treeId, treeNode, XMLHttpRequest, textStatus, errorThrown) {

    //     },
    //     onAsyncSuccess: function(event, treeId, treeNode, msg) {
    //         if (treeModule.opts.onAsyncSuccess == null)
    //             return;
    //         treeModule.opts.onAsyncSuccess(event, treeId, treeNode, msg);
    //     }
    // }
    var zTree;
    var setting = {
      view: {
        dblClickExpand: false,//双击节点时，是否自动展开父节点的标识
        showLine: true,//是否显示节点之间的连线
        fontCss:{'color':'black','font-weight':'bold'},//字体样式函数
        selectedMulti: false //设置是否允许同时选中多个节点
      },
      check:{
        //chkboxType: { "Y": "ps", "N": "ps" },
        chkStyle: "checkbox",//复选框类型
        enable: true //每个节点上是否显示 CheckBox 
      },
      data: {
        simpleData: {//简单数据模式
          enable:true,
          idKey: "id",
          pIdKey: "pId",
          rootPId: ""
        }
      },
      callback: {
        beforeClick: function(treeId, treeNode) {
          zTree = $.fn.zTree.getZTreeObj("user_tree");
          if (treeNode.isParent) {
            zTree.expandNode(treeNode);//如果是父节点，则展开该节点
          }else{
            zTree.checkNode(treeNode, !treeNode.checked, true, true);//单击勾选，再次单击取消勾选
          }
        }
      }
    };

    return setting;
    return zTree;
});